#ifndef PACKETDETAILDIALOG_H
#define PACKETDETAILDIALOG_H

#include <QDialog>
#include <QTabWidget>
#include <QTextEdit>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QGroupBox>
#include <QLabel>
#include "common.h"

namespace Ui {
class PacketDetailDialog;
}

class PacketDetailDialog : public QDialog
{
    Q_OBJECT

public:
    explicit PacketDetailDialog(const PacketInfo &packetInfo, QWidget *parent = nullptr);
    ~PacketDetailDialog();
    
private:
    Ui::PacketDetailDialog *ui;
    
    // 格式化原始数据为十六进制和ASCII
    QString formatHexData(const QByteArray &data);
    QString formatAsciiData(const QByteArray &data);
    QString createCombinedView(const QByteArray &data);
    
    // 设置对话框标题
    void setupTitle(const PacketInfo &packetInfo);
    
    // 设置基本信息
    void setupBasicInfo(const PacketInfo &packetInfo);
    
    // 设置协议详情
    void setupProtocolDetails(const PacketInfo &packetInfo);
    
    // 设置原始数据视图
    void setupRawDataView(const QByteArray &data);
};

#endif // PACKETDETAILDIALOG_H